From 70892c317fd56064b09a4b0fcaa0781735e64efc Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Thu, 7 Sep 2017 17:38:52 +0100 Subject: [PATCH] x86/mm: Allow map_domain_page_global() to be used during boot map_domain_page_global() uses vmap under the hood, which is set up immediately after switching to SYS_STATE_boot. Relax the local_irq_is_enabled() part of the assertion before Xen has finished booting, so map_domain_page_global() can be used duing SMP preparation. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- xen/arch/x86/domain_page.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/domain_page.c b/xen/arch/x86/domain_page.c index 0463e9a65c..3432a854dd 100644 --- a/xen/arch/x86/domain_page.c +++ b/xen/arch/x86/domain_page.c @@ -305,7 +305,10 @@ int mapcache_vcpu_init(struct vcpu *v) void *map_domain_page_global(mfn_t mfn) { - ASSERT(!in_irq() && local_irq_is_enabled()); + ASSERT(!in_irq() && + ((system_state >= SYS_STATE_boot && + system_state < SYS_STATE_active) || + local_irq_is_enabled())); #ifdef NDEBUG if ( mfn_x(mfn) <= PFN_DOWN(__pa(HYPERVISOR_VIRT_END - 1)) ) -- 2.30.2